package com.luoke.service.response;

import com.luoke.connect.GameWebSocketClient;
import com.luoke.result.Result;

public interface BattleResponseService {
    /**
     * 展示服务端返回的当前在线玩家
     *
     * @param gameWebSocketClient 使用该对象与服务端通信
     * @param result              服务端返回的结果
     */
    void showUserOnlineName(GameWebSocketClient gameWebSocketClient, Result result);

    /**
     * 对服务端响应的对方玩家是否接受战斗的消息进行处理
     *
     * @param gameWebSocketClient 使用该对象与服务端通信
     * @param result              服务端返回的结果
     */
    void battleRequest(GameWebSocketClient gameWebSocketClient, Result result);

    /**
     * 展示服务端返回的在等待区中的玩家
     *
     * @param gameWebSocketClient 使用该对象与服务端通信
     * @param result              服务端返回的结果
     */
    void showWaitForUser(GameWebSocketClient gameWebSocketClient, Result result);

    /**
     * 当玩家进入等待区后，这里实时更新服务端的响应
     *
     * @param gameWebSocketClient 使用该对象与服务端通信
     * @param result              服务端返回的结果
     */
    void acceptBattleRequest(GameWebSocketClient gameWebSocketClient, Result result);

    /**
     * 这里处理的是服务端发来的与匹配相关的请求
     *
     * @param gameWebSocketClient 使用该对象与服务端通信
     * @param result              服务端返回的结果
     */
    void matchBattle(GameWebSocketClient gameWebSocketClient, Result result);

    /**
     * 当服务端通知对手回合结束时调用
     *
     * @param gameWebSocketClient 使用该对象与服务端通信
     * @param result              服务端返回的结果
     */
    void opponentRoundCompleted(GameWebSocketClient gameWebSocketClient, Result result);

    /**
     * 展示玩家宠物信息
     *
     * @param gameWebSocketClient 使用该对象与服务端通信
     * @param result              服务端返回的结果
     */
    void showUserPetInfo(GameWebSocketClient gameWebSocketClient, Result result);

    /**
     * 战斗退出的情况
     *
     * @param gameWebSocketClient 使用该对象与服务端通信
     * @param result              服务端返回的结果
     */
    void battleQuit(GameWebSocketClient gameWebSocketClient, Result result);

    /**
     * 对于经验值服务端响应的处理
     *
     * @param gameWebSocketClient 使用该对象与服务端通信
     * @param result              服务端返回的结果
     */
    void experienceResponse(GameWebSocketClient gameWebSocketClient, Result result);
}
